package main

import "fmt"

// 同一个结构体可以实现多个接口
// 接口还可以嵌套
type animal interface { //定义一个动物接口
	mover //嵌套"移动"接口
	eater //嵌套"吃"接口
}

type mover interface { // 定义一个"移动"的接口
	move()
}

type eater interface { // 定义一个"吃"的接口
	eat(string)
}

type cat struct { // 定义一个"猫"结构体
	name string
	feet int8
}

// cat实现了mover接口
func (c *cat) move(){ //指针实现"猫"的"移动"接口
	fmt.Println("走猫步...")
}
// cat实现了eater接口
func (c *cat) eat(food string){ //指针实现"猫"的"吃"接口
	fmt.Printf("猫吃%s...\n",food)
}

func main()  {
	var a1  animal //定义一个"动物"接口类型的变量
	c:=cat{name:"小",feet:18}
	a1 = &c
	a1.eat("鱼")
	a1.move()

	
}
